The present invention relates generally to content addressable memories (CAMs), and more particularly to intra-row configurability of a CAM array.
A content addressable memory (CAM) system is a storage system that can be instructed to compare a specific pattern of comparand data with data stored in its associative CAM array. The entire CAM array, or segments thereof, is searched in parallel for a match with the comparand data. The CAM device typically includes a priority encoder to translate the highest priority matching location into a match address or CAM index.
The CAM array has rows of CAM cells that each store a number of bits of a data word. U.S. Pat. No. 5,440,715 describes a technique for expanding the width of the data words beyond that of a single row of CAM cells. This inter-row configurability provides flexibility in the use of the single CAM array to store data words larger than that available in a single addressable row of CAM cells.
It would be desirable to have a CAM system that includes intra-row configurability to provide additional flexibility in the use of a single CAM array to be used in multiple array configurations. Intra-row configurability is the ability to access and operate upon one or more segments of rows of CAM cells.
A method and apparatus for detecting a multiple match in an intra-row configurable CAM system is disclosed. For one embodiment, the CAM system includes a CAM array and multiple match flag logic. The CAM system has a plurality of rows of CAM cells each row segmented into a plurality of row segments having a plurality of CAM cells coupled to a corresponding match line segment. The multiple match flag logic is coupled to the match line segments and determines when first comparand data matches data stored in each of two or more row segments in response to first configuration information, and determines when second comparand data matches data stored in each of two or more groups of row segments in response to second configuration information. The first configuration information is indicative of a first width and depth configuration of the CAM array, and the second configuration information is indicative of a second width and depth configuration of the CAM array.